#include "SimpleElementS.h"
#include "SFLASH.h"

SFLASH::SFLASH(const Matrix<Element> &firstLinear, const Matrix<Element> &secondLinear, const Matrix<Element> &firstAffineAdd, const Matrix<Element> &secondAffineAdd)
:MI(7, 37, firstLinear, secondLinear, firstAffineAdd, secondAffineAdd, CryptoPP::Integer("151115727451828646838273")/*2^77+1*/)
{
	if(firstLinear.size1() != 37 ||
		secondLinear.size1() != 37 ||
		firstAffineAdd.size1() != 37 ||
		secondAffineAdd.size1() != 37)
	{
		throw std::invalid_argument("The matrix size is not 37*37");
	}
}